package vistas;

//345678901234567890123456789012345678901234567890123456789012345678901234567890

import java.util.Observer;
import javax.swing.*;

import java.util.Observable;
import modelo.*;
import controladores.*;

public class VentanaCompetencia extends JPanel implements Observer {

	private static final int anchoPantalla = 550;
	private static final int altoPantalla = 550;
	private static final int relacionMtPx = 25;
	
	private VelocidadPosicion velPosJugador;
	private VelocidadPosicion velPosMaquina;
	private CtrlCompetencia ctrlCompetencia;
	
	private Lienzo lienzo;
	
	private RenderPista renderPista;
	private RenderAuto renderAutoJugador;
	private RenderAuto renderAutoPC;
	
	public VentanaCompetencia(CtrlCompetencia ctrlCompetencia) {
		
		// = modelo;
		this.ctrlCompetencia = ctrlCompetencia;
		//setTitle("Car Tunning Experience 2008");
		//setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
	}
	
	public void iniciar(){
		this.velPosJugador = Juego.getInstanciaPartida().getPista().getVelPos(1);
		this.velPosMaquina = Juego.getInstanciaPartida().getPista().getVelPos(2);
		this.velPosJugador.addObserver(this);		
		//this.velPosMaquina.addObserver(this);
		lienzo = new Lienzo(anchoPantalla, altoPantalla, ctrlCompetencia);
		this.add(lienzo);
		
		renderPista = new RenderPista(lienzo);
		renderAutoJugador = new RenderAuto(lienzo);
		renderAutoPC = new RenderAuto(lienzo);
		
		renderAutoJugador.setPosX(100);
		renderAutoJugador.setPosY(300);
		
		renderAutoPC.setPosX(180);
		renderAutoPC.setPosY(300);
		
		lienzo.addGenRender(renderPista);
		lienzo.addGenRender(renderAutoJugador);
		lienzo.addGenRender(renderAutoPC);
		
		setVisible(true);
		lienzo.requestFocusInWindow();
		lienzo.render();		
	}
	
	public void mostrar(){
		this.setVisible(true);
	}
	
	public void ocultar(){
		this.setVisible(false);
	}
	
	public void update(Observable obs,Object obj ) {
		
		//System.out.println("ventana recibio peticion de observable "
			//	+ obs.toString());
		
		//System.out.println("POS s MODELO: " + modelo.getPosAuto());
		if(Juego.getInstanciaPartida().getPista().finalizoCarrera(velPosJugador.getId())){
			ctrlCompetencia.parar();
			Juego.getInstanciaPartida().getPista().setPremioGanador();
			JDialog fin = new JDialog();
			fin.setSize(300,100);
	        fin.setTitle("FINALIZO COMPETENCIA!");
	        fin.getContentPane().add(new JLabel("GANADOR="+Juego.getInstanciaPartida().getPista().getGanador().getNombre()+	      
	         "Gano "+Juego.getInstanciaPartida().getPista().getPremioAlgos() 	+" ALGO$"));	
	        fin.setVisible(true);	
			
		}else{
			renderPista.setPosMascara(velPosJugador.getposicion());
			//renderAutoPC.setPosY(renderAutoPC.getPosY() - 1);
			renderAutoPC.setPosY((int)((velPosMaquina.getposicion()-velPosJugador.getposicion()) + 300));
			lienzo.render();
		}
	}
}
